home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / b / b.lha / B / src / bint / b2tcP.h < prev    next >
Text File  |  1988-11-24  |  2KB  |  77 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  2.  
  3. /*
  4.   $Header: b2tcP.h,v 1.4 85/08/22 16:43:20 timo Exp $
  5. */
  6.  
  7. /* polytype representation */
  8.  
  9. typedef value typekind;
  10. typedef value polytype;
  11.  
  12. /* accessing, NOT giving new values */
  13.  
  14. typekind kind();     /* polytype u */
  15. intlet nsubtypes();     /* polytype u */
  16. polytype subtype();     /* polytype u, intlet i */
  17. polytype asctype();     /* polytype u */
  18. polytype keytype();     /* polytype u */
  19. value ident();         /* polytype u */
  20.  
  21. /* MaKe Types, where subtypes are "eaten" */
  22.  
  23. polytype mkt_polytype(); /* typekind k; intlet nsub */
  24.                 /* visible only in bunif.c */
  25. /* Procedure putsubtype(); */    /* polytype sub, *pcomp; intlet isub */
  26.                 /* to be used after mkt_polytype or
  27.                  * mkt_compound */
  28.  
  29. polytype mkt_number();
  30. polytype mkt_text();
  31. polytype mkt_tn();
  32. polytype mkt_error();
  33. polytype mkt_list();     /* polytype s */
  34. polytype mkt_table();    /* polytype k, a */
  35. polytype mkt_lt();     /* polytype s */
  36. polytype mkt_tlt();     /* polytype s */
  37. /* next to be used with putsubtype() calls */
  38. polytype mkt_compound();    /* intlet nsub */
  39. polytype mkt_var();     /* value id */
  40. polytype mkt_newvar();
  41.  
  42. polytype p_copy();     /* polytype u */
  43. /* Procedure p_release(); */        /* polytype u */
  44.  
  45. /* predicates */
  46.  
  47. bool are_same_types();     /* polytype u, v */
  48. bool have_same_structure();/* polytype u, v */
  49.  
  50. bool t_is_number();    /* typekind k */
  51. bool t_is_text();    /* typekind k */
  52. bool t_is_tn();        /* typekind k */
  53. bool t_is_error();    /* typekind k */
  54. bool t_is_list();     /* typekind k */
  55. bool t_is_table();    /* typekind k */
  56. bool t_is_lt();         /* typekind k */
  57. bool t_is_tlt();        /* typekind k */
  58. bool t_is_compound();    /* typekind k */
  59. bool t_is_var();        /* typekind k */
  60. bool has_number();     /* typekind k */
  61. bool has_text();     /* typekind k */
  62. bool has_lt();         /* typekind k */
  63.  
  64. /* typetable */
  65.  
  66. /* Procedure repl_type_of(); */ /* polytype u, tu */
  67. bool table_has_type_of();    /* polytype u */
  68. polytype type_of();         /* polytype u */
  69. polytype bottom_var();         /* polytype u */
  70.  
  71. /* Procedure usetypetable(); */        /* value t */
  72. /* Procedure deltypetable(); */
  73.  
  74. /* init */
  75.  
  76. /* Procedure initpol(); */     /* */
  77.